python调用百度地图API 实现单点沿线轨迹运动

百度地图API 可以做很多好玩的事情,自己闲来无事,先是照着一些资料做了热力图,然后借助pyqt5做了一个简单的界面,实现gps单点沿线(行车)的轨迹。
先上程序界面和效果图:
这里写图片描述
这里写图片描述
过程:1、 申请百度地图开发密匙,界面如下,(另外,我用服务器端一直不成功,所以改用浏览器端就成功了)
这里写图片描述
2、实现两点之间的路径,必须知道两个地点的经纬度,这个时候在制作热力图中就有这个url:url='http://api.map.baidu.com/geocoder/v2/?address={}&output=json&ak={}'.format(address,key),你只需要输入地点名和你的密匙就可以得到你想要的经纬度。


def getgeoaddress(address,key):
url='http://api.map.baidu.com/geocoder/v2/?address={}&output=json&ak={}'.format(address,key)
r=requests.get(url)
return r.json()
定义一个获取经纬度的函数。startingpoint_lng=getgeoaddress(address1,key)[‘result’][‘location’][‘lng’]便可得到该位置的信息,这个位置描述的额越详细精越
高。
3、生成一个html文件,因为在百度地图示例,如下:这里写图片描述:你可以看到在这些都有源代码(JS),所以我的做法是将这些源代码复制到txt中,然后通过读取txt(python 中read得到一个string),替换这块信息:这里写图片描述:将这里面的坐标换成我程序界面输入地点的转换成的坐标。然后在将其保存为.html文件。
相关链接:这里写链接内容这个可以查询中心点坐标和地图等级(所有的JS demo都是以北京天安门作为中心点)
这里写链接内容 (所有示例)

  • 6
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 59
    评论
好的,我了解了你的问题。首先,你需要使用百度地图API获取轨迹点的经纬度信息,然后使用Python的Matplotlib库来绘制轨迹图。 以下是一个简单的步骤: 1. 在百度地图开放平台上创建一个应用,获取到对应的AK(Access Key)。 2. 使用百度地图API的“轨迹纠偏”功能,将原始轨迹点转换为经纬度坐标点,并保存到本地文件中。 3. 使用Python的Matplotlib库,读取保存的经纬度坐标点,绘制轨迹图。 下面是一个简单的代码示例: ```python import requests import json import matplotlib.pyplot as plt # 设置AK ak = 'your_access_key' # 获取轨迹点 url = 'http://api.map.baidu.com/rectify/v1/track?ak={}'.format(ak) data = { "entity_name": "your_entity_name", "start_time": "your_start_time", "end_time": "your_end_time", "is_processed": "1" } response = requests.post(url, data=json.dumps(data)) points = response.json()['points'] # 保存轨迹点到本地文件 with open('points.txt', 'w') as f: for point in points: f.write('{} {}\n'.format(point['x'], point['y'])) # 绘制轨迹图 x = [] y = [] with open('points.txt', 'r') as f: for line in f.readlines(): point = line.strip().split(' ') x.append(float(point[0])) y.append(float(point[1])) plt.plot(x, y) plt.show() ``` 在上述代码中,你需要替换AK、entity_name、start_time和end_time参数为你自己的值。同时,你也可以根据需要自定义轨迹图的样式。 希望这可以帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 59
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值